---------------------------------------------------------------------------
--通用库
---------------------------------------------------------------------------
function Split(str, split_char)
    local sub_str_tab = {};
    while (true) do
        local pos = string.find(str, split_char);
        if (not pos) then
            sub_str_tab[#sub_str_tab + 1] = str;
            break;
        end
        local sub_str = string.sub(str, 1, pos - 1);
        sub_str_tab[#sub_str_tab + 1] = sub_str;
        str = string.sub(str, pos + 1, #str);
    end

    return sub_str_tab;
end
function stringToTable(str)  
   local ret = loadstring("return "..str)()  
   return ret  
end
--********点击函数*******
function tap(x, y)
	local x, y = x, y
 math.randomseed(tostring(os.time()):reverse():sub(1, 6))  --设置随机数种子
  local index =0 --math.random(1,5)
  x = x + math.random(-1,1) 
  y = y + math.random(-1,1)
  touchDown(index,x, y)
  mSleep(math.random(60,80))                --某些特殊情况需要增大延迟才能模拟点击效果
 
	touchUp(index, x, y)
  mSleep(500)
end
--********点击函数结束*******

--********滑动函数从点(x1, y1)划到到(x2, y2)*******
function swip(x1,y1,x2,y2)
    local step, x, y, index = 20, x1 , y1, math.random(1,5)
    touchDown(index, x, y)

    local function move(from, to) 
      if from > to then
        do 
          return -1 * step 
        end
      else 
        return step 
      end 
    end

    while (math.abs(x-x2) >= step) or (math.abs(y-y2) >= step) do
        if math.abs(x-x2) >= step then x = x + move(x1,x2) end
        if math.abs(y-y2) >= step then y = y + move(y1,y2) end
        touchMove(index, x, y)
        mSleep(20)
    end

    touchMove(index, x2, y2)
    mSleep(30)
    touchUp(index, x2, y2)
end
--********滑动函数结束*******


function cmpColorEx(array,s)
	s = s or 95
	s = math.floor(0xff*(100-s)*0.01)
	for var = 1, #array do
		local lr,lg,lb = getColorRGB(array[var][1],array[var][2])
		local rgb = array[var][3]
    
		local r = math.floor(rgb/0x10000)
		local g = math.floor(rgb%0x10000/0x100)
		local b = math.floor(rgb%0x100)
		if math.abs(lr-r) > s or math.abs(lg-g) > s or math.abs(lb-b) > s then
			return false
		end
	end
	return true
end


--对比多色保持
function cmpColorExKeep(array,s)
	s = s or 90
	s = math.floor(0xff*(100-s)*0.01)
	keepScreen(true)
	for var = 1, #array do
		local lr,lg,lb = getColorRGB(array[var][1],array[var][2])
		local rgb = array[var][3]

		local r = math.floor(rgb/0x10000)
		local g = math.floor(rgb%0x10000/0x100)
		local b = math.floor(rgb%0x100)
		if math.abs(lr-r) > s or math.abs(lg-g) > s or math.abs(lb-b) > s then
			keepScreen(false)
			return false
		end
	end
	keepScreen(false)
	return true
end

--找色
function findColor(t)
	return findColorInRegionFuzzy(t[1], t[2], t[3], t[4], t[5], t[6]); 
end

--找多色
function findMultiColor(t)
	return findMultiColorInRegionFuzzy(t[1],t[2], t[3], t[4], t[5], t[6], t[7])
end
--找图
function fpic(pic,s)
local w, h= getScreenSize()
--sysLog(w..','..h)
s = s or 90
return findImageInRegionFuzzy(pic, s, 0, 0, w, h, 0x00ff00);
end
--创建HUD
function shud(str)
	local w, h= getScreenSize()
	
	showHUD(hudid,str,18,"0xff00ff00","0x98000000",0,222,0,273,28)      --显示HUD内容

	
end
--获取设备信息
function device()
	local uid= getUserID()   --加密的叉叉用户
	local ver = getEngineVersion() --引擎版本
	local ostype = getOSType() --系统类型
	local cpu='0' --getSystemProperty('ro.arch') 仅支持安卓
	local pro='0' --getSystemProperty('ro.build.product') 仅支持安卓
	local lag =  getLocalInfo() --语言
	local dpi=  getScreenDPI() -- dpi
	local imei ='0' --getDeviceIMEI() 仅支持安卓
	local imsi ='0' --getDeviceIMSI() 仅支持安卓
	return uid..';'..ver..';'..ostype..';'..cpu..';'..pro..';'..lag..';'..dpi..';'..imei..';'..imsi
end
--发送到网站保存
function httpget()
  local dev=device()
	local cache=nil
	local errcode=nil
	sysLog("test begin")
	sysLog(dev)
	-- 异步httpget请求
	asyncExec({
    type = "httpget",                       -- [string]    指定httpget类型
    immediate = false,                      -- [bool]      默认false, 设置true会独立开启线程执行任务
    url = "http://xx.com/home/index/xx/info/"..dev, -- [string]    请求的URL地址真实地址安全起见我隐藏了 web端使用的thinkphp编写
    callback = function (result)            -- [function]  请求回调函数
        -- 回调结果table
        assert(type(result) == "table")
        --[[
            返回数据格式: { code = [int]错误码, data = [string]服务器返回数据 }
            code -1:  请求出错
                 -2:  请求超时
                 -3:  强制关闭
                 其他: 同http status code
        ]]--
        sysLog("httpget callback: code = " .. result.code .. " data = " .. result.data)
        -- 注意: 虽然请求会异步执行, 但回调函数依然在lua主线程执行, 不要在回调里执行其他阻塞操作
        if result.code==200 then
				cache=result.data  --这里获取到网站返回的数据  可以是公告等 公告再通过其他逻辑显示给用户
				else
				errcode=result.code
				end
		end
	})
	local t = 0
	while t < 10 do
    mSleep(1000)
    t = t + 1
	end
sysLog("test end")
end

